function MM_timelinePlay(tmLnName, myID) { //v1.2
	//Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Macromedia, Inc. All rights reserved.
	var i, j, tmLn, props, keyFrm, sprite, numKeyFr, firstKeyFr, propNum, theObj, firstTime = false;
	if(document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
	tmLn = document.MM_Time[tmLnName];
	if(myID == null) {
		myID = ++tmLn.ID;
		firstTime = true;
	} //if new call, incr ID
	if(myID == tmLn.ID) { //if Im newest
		setTimeout('MM_timelinePlay("' + tmLnName + '",' + myID + ')', tmLn.delay);
		fNew = ++tmLn.curFrame;
		for(i = 0; i < tmLn.length; i++) {
			sprite = tmLn[i];
			if(sprite.charAt(0) == 's') {
				if(sprite.obj) {
					numKeyFr = sprite.keyFrames.length;
					firstKeyFr = sprite.keyFrames[0];
					if(fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr - 1]) { //in range
						keyFrm = 1;
						for(j = 0; j < sprite.values.length; j++) {
							props = sprite.values[j];
							if(numKeyFr != props.length) {
								if(props.prop2 == null) sprite.obj[props.prop] = props[fNew - firstKeyFr];
								else sprite.obj[props.prop2][props.prop] = props[fNew - firstKeyFr];
							} else {
								while(keyFrm < numKeyFr && fNew >= sprite.keyFrames[keyFrm]) keyFrm++;
								if(firstTime || fNew == sprite.keyFrames[keyFrm - 1]) {
									if(props.prop2 == null) sprite.obj[props.prop] = props[keyFrm - 1];
									else sprite.obj[props.prop2][props.prop] = props[keyFrm - 1];
								}
							}
						}
					}
				}
			} else if(sprite.charAt(0) == 'b' && fNew == sprite.frame) eval(sprite.value);
			if(fNew > tmLn.lastFrame) tmLn.ID = 0;
		}
	}
}

function MM_timelineGoto(tmLnName, fNew, numGotos) { //v2.0
	//Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Macromedia, Inc. All rights reserved.
	var i, j, tmLn, props, keyFrm, sprite, numKeyFr, firstKeyFr, lastKeyFr, propNum, theObj;
	if(document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
	tmLn = document.MM_Time[tmLnName];
	if(numGotos != null)
		if(tmLn.gotoCount == null) tmLn.gotoCount = 1;
		else if(tmLn.gotoCount++ >= numGotos) {
		tmLn.gotoCount = 0;
		return
	}
	jmpFwd = (fNew > tmLn.curFrame);
	for(i = 0; i < tmLn.length; i++) {
		sprite = (jmpFwd) ? tmLn[i] : tmLn[(tmLn.length - 1) - i]; //count bkwds if jumping back
		if(sprite.charAt(0) == "s") {
			numKeyFr = sprite.keyFrames.length;
			firstKeyFr = sprite.keyFrames[0];
			lastKeyFr = sprite.keyFrames[numKeyFr - 1];
			if((jmpFwd && fNew < firstKeyFr) || (!jmpFwd && lastKeyFr < fNew)) continue; //skip if untouchd
			for(keyFrm = 1; keyFrm < numKeyFr && fNew >= sprite.keyFrames[keyFrm]; keyFrm++);
			for(j = 0; j < sprite.values.length; j++) {
				props = sprite.values[j];
				if(numKeyFr == props.length) propNum = keyFrm - 1 //keyframes only
				else propNum = Math.min(Math.max(0, fNew - firstKeyFr), props.length - 1); //or keep in legal range
				if(sprite.obj != null) {
					if(props.prop2 == null) sprite.obj[props.prop] = props[propNum];
					else sprite.obj[props.prop2][props.prop] = props[propNum];
				}
			}
		} else if(sprite.charAt(0) == 'b' && fNew == sprite.frame) eval(sprite.value);
	}
	tmLn.curFrame = fNew;
	if(tmLn.ID == 0) eval('MM_timelinePlay(tmLnName)');
}

function MM_initTimelines() { //v4.0
	//MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
	var ns = navigator.appName == "Netscape";
	var ns4 = (ns && parseInt(navigator.appVersion) == 4);
	var ns5 = (ns && parseInt(navigator.appVersion) > 4);
	var macIE5 = (navigator.platform ? (navigator.platform == "MacPPC") : false) && (navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4);
	document.MM_Time = new Array(1);
	document.MM_Time[0] = new Array(2);
	document.MM_Time["Timeline1"] = document.MM_Time[0];
	document.MM_Time[0].MM_Name = "Timeline1";
	document.MM_Time[0].fps = 15;
	document.MM_Time[0][0] = new String("sprite");
	document.MM_Time[0][0].slot = 1;
	if(ns4)
		document.MM_Time[0][0].obj = document["apDiv1"];
	else if(ns5)
		document.MM_Time[0][0].obj = document.getElementById("apDiv1");
	else
		document.MM_Time[0][0].obj = document.all ? document.all["apDiv1"] : null;
	document.MM_Time[0][0].keyFrames = new Array(1, 40);
	document.MM_Time[0][0].values = new Array(2);
	if(ns5 || macIE5)
		document.MM_Time[0][0].values[0] = new Array("25px", "47px", "69px", "90px", "112px", "134px", "156px", "178px", "200px", "221px", "243px", "265px", "287px", "309px", "330px", "352px", "374px", "396px", "418px", "440px", "461px", "483px", "505px", "527px", "549px", "571px", "592px", "614px", "636px", "658px", "680px", "701px", "723px", "745px", "767px", "789px", "811px", "832px", "854px", "876px");
	else
		document.MM_Time[0][0].values[0] = new Array(25, 47, 69, 90, 112, 134, 156, 178, 200, 221, 243, 265, 287, 309, 330, 352, 374, 396, 418, 440, 461, 483, 505, 527, 549, 571, 592, 614, 636, 658, 680, 701, 723, 745, 767, 789, 811, 832, 854, 876);
	document.MM_Time[0][0].values[0].prop = "left";
	if(ns5 || macIE5)
		document.MM_Time[0][0].values[1] = new Array("22px", "40px", "57px", "75px", "92px", "110px", "128px", "145px", "163px", "180px", "198px", "215px", "233px", "251px", "268px", "286px", "303px", "321px", "339px", "356px", "374px", "391px", "409px", "427px", "444px", "462px", "479px", "497px", "515px", "532px", "550px", "567px", "585px", "602px", "620px", "638px", "655px", "673px", "690px", "708px");
	else
		document.MM_Time[0][0].values[1] = new Array(22, 40, 57, 75, 92, 110, 128, 145, 163, 180, 198, 215, 233, 251, 268, 286, 303, 321, 339, 356, 374, 391, 409, 427, 444, 462, 479, 497, 515, 532, 550, 567, 585, 602, 620, 638, 655, 673, 690, 708);
	document.MM_Time[0][0].values[1].prop = "top";
	if(!ns4) {
		document.MM_Time[0][0].values[0].prop2 = "style";
		document.MM_Time[0][0].values[1].prop2 = "style";
	}
	document.MM_Time[0][1] = new String("behavior");
	document.MM_Time[0][1].frame = 41;
	document.MM_Time[0][1].value = "MM_timelineGoto('Timeline1','1')";
	document.MM_Time[0].lastFrame = 41;
	for(i = 0; i < document.MM_Time.length; i++) {
		document.MM_Time[i].ID = null;
		document.MM_Time[i].curFrame = 0;
		document.MM_Time[i].delay = 1000 / document.MM_Time[i].fps;
	}
}